package hcn.api.service.brandnew.feiyong;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.protocol.brandnew.feiyong.feiyongqingdan.*;
import hcn.protocol.ods.feeinquiry.FeeHORequestBean;
import hcn.protocol.ods.feeinquiry.HospitalizationFeeResponseBean;
import hcn.protocol.ods.feeinquiry.OutpatientFeeResponseBean;
import hcn.util.BaseResponse;

/**
 * 平台消息模型/公用/v4.0/费用类业务/费用清单
 *
 * @author enjoyLife
 */
public interface FeiyongqingdanService {


    /**
     * 出院带药信息查询
     */
    @RpcService
    MIrefundAllResponse mIrefundAll(MIrefundAllRequest req) throws ControllerException;


    /**
     * 出院带药信息查询
     */
    @RpcService
    GetDischargeMedicationInformationResponse getDischargeMedicationInformation(GetDischargeMedicationInformationRequest req) throws ControllerException;


    /**
     * 门诊药房列表查询
     */
    @RpcService
    FindRecipeSuppliersResponse findRecipeSuppliers(FindRecipeSuppliersRequest req) throws ControllerException;


    /**
     * 代煎费用查询
     */
    @RpcService
    GetMachiningChineseHerbalMedicineCostResponse getMachiningChineseHerbalMedicineCost(GetMachiningChineseHerbalMedicineCostRequest req) throws ControllerException;


    /**
     * 出院费用信息查
     */
    @RpcService
    GetRefundFlagResponse getRefundFlag(GetRefundFlagRequest req) throws ControllerException;


    /**
     * 出院费用信息查
     */
    @RpcService
    DischargeSettlementInfoResponse dischargeSettlementInfo(DischargeSettlementInfoRequest req) throws ControllerException;


    /**
     * 支付订单号生成
     */
    @RpcService
    CreateOrderNoResponse createOrderNo(CreateOrderNoRequest req) throws ControllerException;


    /**
     * 门诊费用明细查询
     */
    @RpcService
    GetFeeDetailResponse getFeeDetail(GetFeeDetailRequest req) throws ControllerException;


    /**
     * 住院费用信息查询
     */
    @RpcService
    MiPreSetlResponse miPreSetl(MiPreSetlRequest req) throws ControllerException;


    /**
     * 住院费用信息查询
     */
    @RpcService
    ListHospitalizationPaymentDateResponse listHospitalizationPaymentDate(ListHospitalizationPaymentDateRequest req) throws ControllerException;


    /**
     * 电子发票生成
     */
    @RpcService
    UploadFeeDetailsResponse uploadFeeDetails(UploadFeeDetailsRequest req) throws ControllerException;


    /**
     * 电子发票生成
     */
    @RpcService
    CreateInvoiceResponse createInvoice(CreateInvoiceRequest req) throws ControllerException;


    /**
     * 门诊待支付信息通知
     */
    @RpcService
    PayTradeNoticeByHisResponse payTradeNoticeByHis(PayTradeNoticeByHisRequest req) throws ControllerException;


    /**
     * 电子发票查看
     */
    @RpcService
    InsurancePatientDiagnosisResponse insurancePatientDiagnosis(InsurancePatientDiagnosisRequest req) throws ControllerException;


    /**
     * 电子发票查看
     */
    @RpcService
    QueryInvoiceH5URLResponse queryInvoiceH5URL(QueryInvoiceH5URLRequest req) throws ControllerException;


    /**
     * 住院汇总费用信息查询
     */
    @RpcService
    MiQuerySetlinfoResponse miQuerySetlinfo(MiQuerySetlinfoRequest req) throws ControllerException;


    /**
     * 住院汇总费用信息查询
     */
    @RpcService
    GetCostAggregationResponse getCostAggregation(GetCostAggregationRequest req) throws ControllerException;


    /**
     * 发票信息查询
     */
    @RpcService
    RefundBySelfPaidResponse refundBySelfPaid(RefundBySelfPaidRequest req) throws ControllerException;


    /**
     * 发票信息查询
     */
    @RpcService
    QueryInvoiceListResponse queryInvoiceList(QueryInvoiceListRequest req) throws ControllerException;


    /**
     * 门诊费用列表查询
     */
    @RpcService
    ListOutpatientExpensesResponse listOutpatientExpenses(ListOutpatientExpensesRequest req) throws ControllerException;

    /**
     * 住院费用列表
     */
    @RpcService
    HospitalizationExpensesResponse HospitalizationExpenses(ListOutpatientExpensesRequest req) throws ControllerException;

}
